#pragma once

#include <Windows.h>

class InputState
{
public:
	InputState(bool LMBPressed, bool RMBPressed, int wheelPos, POINTS mouseDelta, POINTS mousePos, unsigned char* keys, float dTime);
	virtual ~InputState();

	bool isKeyDown(int vKey) const;
	bool keyPressed(int vKey) const;
	POINTS getMouseMovement() const;
	POINTS getMousePos() const;
	short getWheelPos() const;
	bool isLMBDown() const;
	bool isMMBDown() const;
	bool isRMBDown() const;
	float getDeltaTime() const;

	static const int NUMKEYS = 256;

protected:
	bool m_LMBPressed, m_RMBPressed;
	short m_WheelPos;
	POINTS m_MousePos, m_MouseDeltaPos;
	unsigned char m_Keys[NUMKEYS];
	float m_dTime;

private:
};